package com.atguigu.test6;

/**
 * @author 路飞
 * @date 2024/4/6 17:12
 * @description 编写代码完成如下功能
 * public static String replace(String text, String target, String replace){
 * ....
 * }
 * 示例：replace(“aabbccbb”, “bb”, “dd”);  结果：aaddccdd
 * 注意：不能使用String及StringBuffer等类的replace等现成的替换API方法。
 */
public class Test1 {
    public static void main(String[] args) {
        String text = "aabbccbb";
        String target = "b";
        String replace = "dd";
        System.out.println("原来的字符串为：" + text);
        System.out.println("替换之后的字符串为：" + replace(text, target, replace));
    }

    public static String replace(String text, String target, String replace) {
        char[] chars = text.toCharArray();
        // 记录target这个字符串，在text这个字符串中出现的索引位置
        int index = text.indexOf(target);
        StringBuilder sb = new StringBuilder();

        // 把该索引位置左边的字符拼接起来
        for (int i = 0; i < index; i++) {
            sb.append(chars[i]);
        }
        // 把需要替换的字符串给拼接起来
        sb.append(replace);
        // 把剩下的字符拼接起来
        for (int i = index + target.length(); i < chars.length; i++) {
            sb.append(chars[i]);
        }
        return sb.toString();
    }
}
